package nagel_schreckenberg;

public class Config {
	
	public static double SLOWDOWN = .15; //slowdown probability in Nagel-Schreckenberg model
	public static double SPAWN = .1; //probability of creating a vehicle in a CarFactory
	public static int GREENPOLICY = 10; //phasetime in controlLights(), equal for all directions
	public static int SPAWNSTOP = 100; //nr of rounds before end of simulation when spawning stops
	public static int SIMITERATIONS = 1000; //nr of rounds in a simulation
	public static int NRSIMULATIONS = 1; //nr of simulations conducted
	public static int VIEWTIME = 25; //time each frame is shown in milliseconds
	public static boolean GUI = true; //graphics on/off
	
	
	public static int GERSHENSON_D = 30; //observation distance on incoming lane
	public static int GERSHENSON_R = 5; //short distance for leftover time
	public static int GERSHENSON_U = 10; //minimum green time
	public static int GERSHENSON_E = 10; //observation distance on outgoing lane
	public static int GERSHENSON_M = 2;	//nr of vehicles in R to hold light
	public static int GERSHENSON_N = 15; //threshold to switch light to incoming lane
	
	
	public static double OCCUPATION_ER = .1; //threshold from empty to regular occupation
	public static double OCCUPATION_RF = .5; //threshold from regular to full occupation
	public static int TOTALCYCLETIME = 50; //nr of rounds for a complete phase cycle
	public static int CYCLEPHASE = 50; //nr of rounds between choice of plans and evaluation in RL-CD
	public static int CONTEXTCHANGE = 500; //nr of rounds between change of spawning contexts
	public static double LAMBDA = 10; //plasticity threshold until when model is adjusted
	public static double OMEGA = .5; //relative importance of reward and transition prediction errors to assessment of model
	public static double Em_P = .2; //adjustment coefficient for Em (trace of prediciton error)
	public static int M = 10; //nr of past experiences taken into consideration
	
	public static boolean CONTEXTINFO = true; //whether or not information from neighboring intersections will be used
	public static boolean LOAD = true; //whether or not existing partial models should be loaded from a file
}
